//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#ifndef __COMPOUND_CHANNEL_TYPES_H
#define __COMPOUND_CHANNEL_TYPES_H

#ifdef _zener
#include <ddk.h>

typedef char                 C_CHAR;
typedef unsigned char        C_UCHAR;
typedef short                C_WCHAR;
typedef short                C_SHORT;
typedef Int32                C_INT;
typedef UInt32               C_UINT;
typedef Int32                C_LONG;
typedef bool                 C_BOOL;
typedef void                 C_VOID;
typedef C_VOID               *C_PVOID, *C_LPVOID;
#undef  FALSE
#define FALSE 0
#undef  TRUE
#define TRUE                 (!FALSE)

typedef DzMutex*             C_LOCK;
typedef DzEvent*             C_EVENT;

#else

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef char                 C_CHAR;
typedef unsigned char        C_UCHAR;
typedef wchar_t              C_WCHAR;
typedef short                C_SHORT;
typedef int                  C_INT;
typedef unsigned int         C_UINT;
typedef int                  C_LONG;
typedef int                  C_BOOL;
typedef void                 C_VOID;
typedef C_VOID               *C_PVOID, *C_LPVOID;
#undef  FALSE
#define FALSE                0
#undef TRUE
#define TRUE                 (!FALSE)

typedef void*                C_LOCK;
typedef void*                C_EVENT;

#endif

#ifndef EXTERN_C
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C
#endif
#endif

#endif //__COMPOUND_CHANNEL_TYPES_H
